package net.cathackers.devel.scmp.auth.interfaces;

import net.cathackers.devel.scmp.auth.exceptions.ProfileAlreadyExistsException;
import net.cathackers.devel.scmp.auth.exceptions.ProfileNotFoundException;
import net.cathackers.devel.scmp.exceptions.BackendConnectException;
import net.cathackers.devel.scmp.exceptions.BackendException;
import net.cathackers.devel.scmp.interfaces.Cacheable;

public interface UserProfile extends Cacheable{

    String getFieldValue(UserProfileField field) throws ProfileNotFoundException, BackendConnectException, BackendException;
    String getID(); 
    boolean setField(UserProfileField field, String value);
    String[] getAllFieldNames();
    void addProfileAsNew() throws  BackendConnectException, ProfileAlreadyExistsException, BackendException;
    //void setListField(UserProfileListField field, List<String> values);
    //void setListField(UserProfileListField field, String oldValue, String newValue);
    //void appendToListField(UserProfileField field, String value);
    // boolean deleteFromListField(UserProfileField field, String value);
    //String[] getListFieldValue(UserProfileListField field) throws ProfileNotFoundException, BackendConnectException;
    //String[] getAllListFieldNames();
}
